An ability to print within a computing environment generally ranges from desirable to indispensable. Conventional printers, and associated printing techniques, typically involve installation of a print driver within the context of an operating system or platform of an associated computer. The print driver is generally specific to the associated (type of) printer, and to the operating system, and enables applications running in the context of the operating system to communicate with (e.g., send print jobs to) the printer. Thus, in an example user experience, an owner of a computer running a particular operating system purchases a printer, and then installs a version of the printer driver associated with the user's operating system onto the computer. In other example scenarios, a printer (i.e., associated printer driver) may be installed in the context of a network.
In either case, a user may wish to preview a document before communicating the print job to the printer. For example, an application running on the operating system may provide a print preview in a print dialog that displays a representation of the document in response to a user selecting “print” from a menu selection. In the conventional print context, the application has direct access to the document for creating the print preview. In other words, all data necessary for the generation of the print preview may be accessed locally. As such, the application may provide an actual print preview of the document subject relatively quickly and easily after the user selects the “print” option.
In addition, most recently, printing a document using a cloud print service is now a possibility. For example, a cloud printing system may provide users with an ability to print content from virtually any application or device, using any cloud-aware printer. In other words, the cloud printing system may provide an ability for virtually any application running on any device within a network to communicate with a cloud print service, to thereby print to any printer that is also in communication with the cloud print service. In one example, in the context of cloud printing, an application may send a print request, over a network, to the cloud print server for printing a document using the cloud print service. In return, the cloud print server may provide a print dialog including a number of available cloud-printers, as well as printing options associated with each available cloud-aware printer. Upon selection of a printer and the print options, the cloud print service may convert the print job to a format suitable for the cloud-aware printer, and then transmit the print job having the converted format, over the network, to the cloud aware printer. However, rendering a suitable print preview in the cloud environment presents its own set of challenges that are not encountered in conventional print paradigms.
In addition, with respect to conventional printing mechanisms, the print dialog may include not only the print preview but also a number of selectable printing options such as two-sided/one-sided printing, page orientation and resolution, for example. These printing options are sometimes presented side-by-side with the print preview, or alternatively, using drop down menu selections on the print dialog. Generally, the user may interface with these printing options by “checking” a box or operating a set of radio or option buttons (e.g., a set of circular holes that contain white space (unselected) or a dot (selected)). However, conventional user interface elements for selecting printing options are sometimes not user-friendly or intuitive for printing a document in a manner which the user desires.